// EBASSystem.h : Declaration of the CEBASSystem

#ifndef __EBASSYSTEM_H_
#define __EBASSYSTEM_H_

#include "resource.h"       // main symbols
#include "FileLogging.h"

/////////////////////////////////////////////////////////////////////////////
// CEBASSystem
class ATL_NO_VTABLE CEBASSystem : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CEBASSystem, &CLSID_EBASSystem>,
	public IDispatchImpl<IEBASSystem, &IID_IEBASSystem, &LIBID_EBASDLLLib>
{
public:
	CEBASSystem()
	{
		
	}

DECLARE_REGISTRY_RESOURCEID(IDR_EBASSYSTEM)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CEBASSystem)
	COM_INTERFACE_ENTRY(IEBASSystem)
	COM_INTERFACE_ENTRY(IDispatch)
END_COM_MAP()

// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// IEBASSystem
public:
	STDMETHOD(get_Version)(/*[out, retval]*/ BSTR *pVal);
	DECLARE_CLASSFACTORY_SINGLETON(CEBASSystem)
	STDMETHOD(get_LastError)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(NyLicens)(/*[in]*/BSTR licensTil, /*[in]*/BSTR licensNr, /*[in]*/BSTR licensSlut, /*[in]*/LONG type);
	STDMETHOD(HentLicensInfo)(/*[out]*/ BSTR * licensTil, /*[out]*/ BSTR * licensNr, /*[out]*/ BSTR * licensType, /*[out]*/ BSTR * slutDato);
	STDMETHOD(LogPaa)(/*[in]*/BSTR bruger, /*[in]*/BSTR kode, /*[in]*/long adminOption, IBrugerSession ** ppVal);
};

#endif //__EBASSYSTEM_H_
